home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Video Toaster 4.3
/
Video Toaster v4.3.iso
/
4.2
/
arexx
/
toasterpaint
/
skeleton.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1998-04-16
|
4KB
|
146 lines
/* Strobe.rexx -- Make a clip Processor */
/* By Bob Caron © 1995 NewTek Inc. */
parse arg InClipName","OutClipName","StartField","EndField
Address "DigiPaint"
options results
if InClipName="" & OutClipName="" then do
'Askb'"This only works;from process clip."
exit
end
'AskuStart IFF Frame #'
if RC = 5 then call quit("Canceled!")
StartFrame=strtoint(Result)
IFFBaseName=OutClipName
if ~show('l','rexxsupport.library') then do
if ~addlib('rexxsupport.library',0,-30,34) then do
exit
end
end
/* Reset Paint */
'Pmcl'
'Pot0' 0
'Pot1' 0
'Poth' $8000
'Potv' $8000
'Spoh' $8000
'Spov'
/* End Of Reset*/
PageWide=752
PageHigh=480
dots=0
XWin = 100
YWin = 40
Clear = d2c(12)
nv = ''
cr = '0a'x
call getfontsize
wid = width*48
hei = theight+height*10
if screen=0 then do
if ~open('Window','RAW:'XWin'/'YWin'/'wid'/'hei'/Strobe Script V2.0 - CTRL-C to Abort/NOSIZE/SCREEN 'ps,'W') then do
exit
end
end
do Frame = StartField to (StartField+(EndField-StartField)/2)
if screen=0 then call OpenWindow(InclipName,OutClipName,frame,Endfield,Frame)
if screen=0 then 'Gnfd' /* Get the next field to process */
call filter() /* Do The filter Thing... */
if screen=0 then 'Apfc' /* Apeend the field to clip */
if screen=0 then 'Gnfd' /* Get the next field to process */
if screen=0 then call filter() /* If this is a flyer clip do other field */
if screen=0 then 'Apfc' /* Apeend the field to clip */
if screen=1 then 'Shco' /* Render To Buffer (if this is screen processing)*/
end
if screen=0 then 'Iclp' /* Add an flyer icon to this clip */
exit
filter: /* Do a filter */
if screen=0 then call OpenWindow(InclipName,OutClipName,frame,Endfield,Frame) /* Update window and dots. */
/* Put paint filter code here */
return
OpenWindow:
parse arg InclipName,OutClipName,currentframe,EndFrame,Frame
pdots="...."
dots=dots+1
if dots>4 then dots=1
call writech('Window',Clear||nv||cr)
call writech('Window','Current Source Clip ['InClipName']'cr)
call writech('Window',' Current Dest Clip ['OutClipName']'cr)
call writech('Window',''cr)
call writech('Window','Current Frame: 'Frame/2''cr)
call writech('Window',' End Frame:'EndFrame/2''cr)
call writech('Window',''cr)
call writech('Window','Processing'right(pdots,dots)||cr)
return
getfontsize:
if open('font','env:sys/font.prefs','R') then do
font = readch('font',word(statef('env:sys/font.prefs'),2))
call close('font')
font = substr(font,index(font,'FONT')+4)
font = substr(font,index(font,'FONT')+4)
height = c2d(substr(font,29,2))
tfont = substr(font,index(font,'FONT')+4)
theight = c2d(substr(tfont,29,2))
font = substr(font,33)
font = left(font,index(font,d2c(0))-1-5)
if open('font','FONTS:'font'/'height,'R') then do
width = c2d(right(readch('font',116),2))
call close('font')
end
else if height=9 then width = 10
else width = 8
end
else do
theight = 8
height = 8
width = 8
end
return
strtoint:
arg numb
numb=cleanline(numb)
total=0
do x=1 to length(numb)
total=total+(abs(48-c2d(substr(numb,(length(numb)+1)-x,1)))*(10**(x-1)))
end
return total
cleanline: /* Remove a wudge of non-alpha char's */
parse arg line
line=translate(line,"","/*=:.;:<>+-!@#$%^&*()_|\[]{}?~`,")
line=translate(line,"","abcdefghijklmnopqrstuvwxyz")
line=translate(line,"","ABCDEFGHIJKLMNOPQRSTUVWXUZ")
line=translate(line,"",d2c(34))
line=translate(line,"",d2c(40))
line=translate(line,"",d2c(41))
line=translate(line,"",d2c(0))
line=compress(line)
return line